今日對話:如何讓 Python 每天定時工作?
我的 Prompt(提示詞):
「我寫好了一支爬蟲程式,但我不想每天早上手動點擊執行。請教我如何用最簡單的方式,讓這支 Python 程式『每天早上 8 點自動執行一次』?請用適合新手的套件教學,並解釋程式碼的邏輯。」
AI 導師告訴我,要讓程式自動排程,通常有兩種作法:
AI 推薦了 schedule 這個套件。它的語法設計得就像英文句子一樣,超級好懂!
只需要打開終端機,輸入 pip install schedule 即可安裝。
實作的核心概念:
我在 VS Code 建立了 day26.py檔案。為了方便測試,我們先把昨天的龐大爬蟲濃縮成一段簡單的文字,重點放在「排程」的運作機制:
python
import schedule
import time
import datetime
#1. 將你要做的事情包裝成一個「任務函數」 (def)
def daily_crawler():
# 這裡可以放昨天寫的 request + BeautifulSoup + Pandas 程式碼
now = datetime.datetime.now().strftime("%H:%M:%S")
print(f"[{now}] 🤖 嗶嗶!開始執行每日爬蟲任務...")
print("✅ 已經成功抓取今日新聞並存成 CSV!")
print("-" * 40)
#2. 設定排程
#目標:每天早上 8 點執行一次
schedule.every().day.at("08:00").do(daily_crawler)
#測試小秘訣:在開發時,我們不可能傻傻等到明天早上 8 點才驗證有沒有寫錯。
#所以先把它註解掉,改成「每 5 秒鐘執行一次」來測試!
schedule.every(5).seconds.do(daily_crawler)
print("⏰ 系統已啟動!等待任務觸發中...")
print("💡 提示:按 [Ctrl + C] 可以強制停止程式。")
print("-" * 40)
#3. 讓程式保持清醒的無限迴圈
while True:
schedule.run_pending() # 檢查有沒有已經到期的任務需要執行
time.sleep(1) # 讓程式休息 1 秒鐘,避免過度消耗電腦 CPU 資源
今天補齊了自動化的關鍵拼圖排程。